<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <pre>
        闭包：是指函数可以使用函数之外定义的变量
        1）默认函数内可以读取函数外定义的数据[作用域支持]
        2）默认函数外部不能读取函数内定义的数据[作用域限制]
            1、在外部函数fn3内再定义内部函数fn4
            2、将外部函数fn3内部数据通过内部函数fn4返回到函数外。
            注意：
                通过闭包+作用域链可以实现外部函数获取内部函数的数据，但是要想做数据的累加，必须保证外部函数只被调用一次。
                闭包能让局部变量的值始终保持在内存中

        思考：页面中有百个按钮，每点击一次按钮触发当前按钮对应的赞数+1

        JS中循环：
        1）while循环
        2）do-while循环
        3）普通for
            for( var i=0 ;i < length; i++){}
            除对象外，数组等数据均可遍历，条件变量i是下标
        4）for-in
            for(var i in obj){}
            所有数据均可遍历，条件变量i是下标
        5）for-of
            for(var i of obj){}
            除对象外，数组等数据均可遍历，条件变量i是值
        6）foreach
            可遍历的数据.forEach
            除对象外，数组等数据均可遍历，语法是 数组.forEach(回调函数(值,下标))
        7）map
            可遍历的数据。map
            除对象外，数组等数据均可遍历，语法是 数组.map(回调函数(值,下标, 数组))
    </pre>
    <input type="button" value="第一个 局部num+1" onclick="test1()" />
    <span id="one"></span>
    
    <br/>

    <input type="button" value="第二个 局部num+1" onclick="test2()" />
    <span id="two"></span>


    <script type="text/javascript" src="js/chapter10.js"></script>
</body>
</html>